The Internet is a vast collection of computing resources, interconnected as a network, existing at locations all over the world. It is used daily by millions of people. The World Wide Web (hereinafter the “Web”) is that portion of the Internet which uses the HyperText Transfer Protocol (HTTP) as a protocol for exchanging messages. (Alternatively, the “HTTPS” protocol can be used, which is a security-enhanced version of HTTP.) The Web environment has become the most popular method of accessing and distributing data over the Internet.
A user of the Internet typically accesses and uses the Internet by establishing a network connection through the services of an Internet Service Provider (ISP). An ISP provides computer users with the ability to dial a telephone number using their computer modem (or other connection facility, such as satellite transmission), thereby establishing a connection to a remote computer owned or managed by the ISP. This remote computer then makes services available to the user's computer. Typical services include: providing a search facility to search throughout the interconnected computers of the Internet for items of interest to the user; a browse capability, for displaying information located with the search facility; and an electronic mail facility, with which the user can send and receive mail messages from other computer users. The Internet is a “distributed network”, meaning that resources and users can reside at various locations all over the world.
The HTTP protocol uses a request/response paradigm, where the electronic messages sent between communicating computers can be categorized as either requests for information, or responses to those requests. A request from the user is in the form of a Uniform Resource Locator (URL). A URL is an address or location of a resource located on the Web.
The user working in a Web environment will have software running on his computer to allow him to create and send requests for information, and to see the results. These functions are typically combined in what is referred to as a “Web browser”, or “browser”. After the user has created his request using the browser, the request message is sent out into the Internet for processing. The target of the request message is one of the interconnected computers in the Internet network. That computer will receive the message, attempt to find the data satisfying the user's request, format that data for display with the user's browser, and return the formatted response to the browser software running on the user's computer. The data returned to the user can be a “web page” or “web site”, which is one of the many files located on the server.
This is an example of a client-server model of computing, where the machine at which the user requests information is referred to as the client, and the computer that locates the information and returns it to the client is the server. In the Web environment, the server is referred to as a “Web server”. The client-server model may be extended to what is referred to as a “three-tier architecture”. This architecture places the Web server in the middle tier, where the added third tier typically represents data repositories of information that may be accessed by the Web server as part of the task of processing the client's request. This three-tiered architecture recognizes the fact that many client requests do not simply require the location and return of static data, but require an application program to perform processing of the client's request in order to dynamically create the data to be returned. In this architecture, the Web server may equivalently be referred to as an “application server”, reflecting the fact that this middle tier is where the business logic of the application typically resides, and the computers on which the data repositories reside may be referred to as “data servers”, or “backend data servers”.
The Java programming language is gaining wide acceptance for writing Web applications, as it is a robust portable object-oriented language defined specifically for the Web environment. (“Java” is a trademark of Sun Microsystems, Inc.) Java attains its portability through use of a specifically-designed virtual machine. An application server that implements a Java virtual machine can be functionally extended using Java “servlets”. A servlet is a relatively small executable code object that can be dynamically plugged in, or added, to the code running on the server. Servlets typically perform some specialized function, which can be invoked by the server (or by another servlet) to extend its own functionality. The servlet processes the request, and returns the response to the server (or servlet) that invoked it.
The person managing a web server is known as the System Administrator. The System Administrator uses an application server to manage one or many web sites. This process is referred to as “web hosting.” An example of such an application server that facilitates web hosting is WebSphere provided by IBM. WebSphere allows a system administrator to create and manage sophisticated web pages. It consists of a set of Java-based tools that allows the System Administrator to connect users with servlets running on the application server.
The web environment provides System Administrators a means of providing information contained on their web site to a large number of users at any location where there is a means to access the Internet. This is a good example of a distributed network, as the user group is a constantly changing undefined group of client computers. However, this also creates some problems in the web environment that did not previously exist in a localized area network (LAN) environment.
One problem that exists is that there currently is no effective means for the System Administrator to communicate with the users who are accessing a web site at any given moment. Because of the nature of a distributed network, it is impossible for the system administrator to send a message to the users in the manner that could have been used with a LAN environment. There is no means to determine exactly who comprises the user group at any given time, as different users can be accessing the system at any moment. Unlike previous network environments (such as LANs), there is no physical limitation to the number of computers that provide user access in the Web environment.
There are times when a web site needs to be taken offline for some period of time. This can be due to an emergency situation caused by some type of technical problem, or it could be for a routine operation (e.g., updating the content on the site). Currently, anyone using the website when it is taken offline has their session terminated without warning when the system is shut down. Any partially completed transactions are lost, and anyone attempting to further access the site finds that their browser cannot locate it.
In the event that the System Administrator intends to shut down the application server (i.e., web site), it would be desirable to notify users of such intent prior to the actual shutdown. It is desirable to send a message to the users notifying them of the impending shutdown so that they can attempt to complete any unfinished transactions that may be pending, or, at a minimum, provide information as to the status of the web site and the expected time when access will be restored. Therefore, it would be desirable for System Administrators to have the ability to send messages to the users of their systems in the web environment.